#include<bits/stdc++.h>
using namespace std;
struct bign{
    int d[200];
    int len;
    bign(){memset(d,0,sizeof(d));len=0;}
};

bign change(char str[]){
    bign a;
    a.len=strlen(str);
    for(int i=0;i<a.len;i++){
        a.d[i]=str[a.len-i-1]-'0';
    }
    return a;
}

bign revers(bign a){
    bign b;
    b.len=a.len;
    for(int i=0;i<a.len;i++){
        b.d[a.len-i-1]=a.d[i];
    }
    return b;
}

int compare(bign a,bign b){
    if(a.len>b.len){return 1;}
    else if(a.len<b.len){return -1;}
    else{
        for(int i=0;i<a.len;i++){
            if(a.d[i]>b.d[i]){return 1;}
            if(a.d[i]<b.d[i]){return -1;}
        }
    }
    return 0;
}

bign add(bign a,bign b){
    bign c;int carry=0;
    for(int i=0;i<a.len||i<b.len;i++){
        int tmp=a.d[i]+b.d[i]+carry;
        c.d[c.len++]=tmp%10;
        carry=tmp/10;
    }
    if(carry!=0){
        c.d[c.len++]=carry;
    }
    return c;
}

bool isPal(bign a){
    int left=0,right=a.len-1;
    while(left<=right){
        if(a.d[left++]!=a.d[right--]){
            return false;
        }
    }
    return true;
}
int main(){
    //freopen("in.txt","r",stdin);
    char inp[11];int K;
    cin>>inp>>K;
    bign a=change(inp);
    
    int step=0;
    bign b,c=a;
    while(!isPal(c) && step<K){
        b=revers(c);
        c=add(b,c);
        step++;
    }
    for(int i=c.len-1;i>=0;i--){
        printf("%d",c.d[i]);
    }
    printf("\n%d",step);
    return 0;
}
